/**
 * 
 */
package niuke;

import java.util.Scanner;

/**
 * @author zhongfang
 *
 */
public class 水杯融合 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		while (scanner.hasNextInt()) {
			int n=scanner.nextInt();
			int T=scanner.nextInt();
			double C=scanner.nextInt();
			int[] t=new int[n];
			int[] c=new int[n];
			int max=-1;
			int min=10001;
			boolean allT=true;//只有容积0或者温度T，则可以设置为T
			boolean noWater=false;//存在初始空杯子
			for (int i = 0; i < n; i++) {
				t[i]=scanner.nextInt();
				c[i]=scanner.nextInt();
				if(c[i]==0){
					noWater=true;
					continue;
				}
				if(t[i]>max){
					max=t[i];
				}
				if (t[i]<min) {
					min=t[i];
				}
				if(t[i]!=T){
					allT=false;
				}
			}
			double target=-1;
			if(max<T&&!noWater){//全部<T，则T不能使得max减少，所以target是max
				target=max;//全部<T，则T不能使得max减少，所以target是max。如果有剩下的水，则可以再增加
				double[] cp=new double[n];//每杯增加量
				double totalNewC=0;
				for (int i = 0; i < n; i++) {
					cp[i]=((double)t[i]*c[i]-target*c[i])/(target-T);//增加的量
					C-=cp[i];
					if(C<0){
						break;
					}
					totalNewC+=(cp[i]+c[i]);
				}
				
				if(C<0){
					System.out.println("Impossible");
				}else {
					//用剩余的水量提升温度
					target+=(C/totalNewC);
					System.out.println("Possible");
					System.out.println(String.format("%.4f", target));
				}
			}else if (T<min&&!noWater) {//T使得水温下降，不能使得水温上升，所以最高可行温度是min
				target=min;
				//检查量是否足够
				for (int i = 0; i < n; i++) {
					C-=((double)t[i]*c[i]-target*c[i])/(target-T);
					if(C<0){
						break;
					}
				}
				if(C<0){
					System.out.println("Impossible");
				}else {
					System.out.println("Possible");
					System.out.println(min+".0000");
				}
			}else {
				if(allT){//如果温度不是0就是T，则取T。（如果没有容量放？？）
					System.out.println("Possible");
					System.out.println(T+".0000");
				}else {
					System.out.println("Impossible");
				}
			}
		}
	}
}
